package generic;

import java.util.ArrayList;
import java.util.List;

/**
 * @author SWJ
 * @create 2021-06-21 10:39
 * 本领用来测试List接口
 */
public class TestList {
    public static void main(String[] args) {
        //1.创建List接口多态对象，注意List是接口无法实例化
        List<String> list =new ArrayList();
        //2.添加元素 测试继承自collection的方法
        list.add("1");
        //向集合中添加元素
        list.add("2");
        list.add("3");
        list.add("4");
        list.add("5");
        list.add("6");
        list.add("7");

        System.out.println(list);

        System.out.println(list.contains("4"));
        //判断包含元素
        System.out.println(list.equals("4"));
        System.out.println(list.hashCode());
        System.out.println(list.isEmpty());
        //判断是否为空
        System.out.println(list.remove("2"));
        //移除首次出现的首次元素
        System.out.println(list.size());
        //6，获取集合中的元素个数
        System.out.println(list.toArray());
        //当前集合转数组

        //list集合有特有的方法 可以根据索引的方式
        list.add("10");
        //添加新的元素追加到最后
        System.out.println(list);
        list.add(1,"12");
        //在指定位置添加元素
        System.out.println(list);
        System.out.println(list.get(3));
        //获取指定位置上的元素
        list.add(2,"12");
        //在2的位置上添加12

        list.add(2,"24");
        System.out.println(list);
        System.out.println(list.indexOf("24"));
        //获取元素首次出现的索引
        System.out.println(list.lastIndexOf("24"));
        //获取指定元素最后一次出现的索引

        System.out.println(list.remove(3));
        //删除下标指定元素
        System.out.println(list.set(3, "bbbbb"));
        //修改指定索引处的元素值，相当于重置
        System.out.println(list);
        //[1, 12, 24, bbbbb, 4, 5, 6, 7, 10]
       List<String> suList= list.subList(3,7);
       //截取子串[3,7)含头不含尾
        System.out.println(suList);
        //截取3开始到 7结束 [bbbbb, 4, 5, 6]

        System.out.println( );
        //集合间操作
        List<String> list2 = new ArrayList<>();
        //创建集合2对象
        list2.add("100");
        list2.add("200");
        list2.add("300");
        System.out.println(list2+"list2元素");
        System.out.println(list+"list元素");
        System.out.println(list.addAll(0,list2));
        //将list2集合添加到list集合的指定元素索引
        System.out.println(list);
        System.out.println(list.contains(list2));
        System.out.println(list.containsAll(list2));
        System.out.println(list.remove(list2));
        System.out.println(list);
    }
}
